Field of the Disclosure
This application generally relates to metadata, caches, reliable computing systems, distributed computing systems, and other matters.
Background of the Disclosure
Some computing systems are capable of emulating selected hardware devices, which might or might not be physically present at the computing system. These systems might include virtual machines (VM's), in which a host operating system (host OS) executes code to control real system devices (RSD's), to emulate virtual system devices (VSD's). The host operating system (host OS) executes code to emulate and control a guest operating system (guest OS), which itself can execute code to present an environment to one or more applications. In such systems, user might affect virtual systern devices (VSD's) by means of instructions from one or more applications or the guest OS.
In such systems, it might sometimes occur that storage devices lose data, with the effect that data important to the user might be lost. While, this problem can be addressed by maintaining metadata to protect against data loss, maintaining the metadata can involve multiple storage access operations to maintain the metadata current, each time a user operation that affects a VSD causes an access to an RSD. For example, it might occur that the computing system maintains a distributed file system, with the idea that a distributed file system might be less subject to failure and more resilient to error. This same approach might apply to other resources made available as VSD's.
In such systems, it might sometimes occur that more than one change to the metadata occurs for each user operation that causes access to one or more RSD's. For example, in a tree-structure storage system such as those used in the linux kernel, each access to a leaf on the tree can cause metadata to be affected at each node of the tree between that leaf and the tree root. Such multiple accesses might involve one or more accesses to RSD's, and might be deprecated.
Each of these issues, as well as other possible considerations, might cause difficulty in aspects of operating computing systems, particularly in those computing systems in which virtual machines are implemented, or in computing systems making use of distributed resources.